import { defineStore } from 'pinia'
import { ITabe } from './type'
// 方式一
export type TabsState = {
  //定义state类型
  tabsList: Array<ITabe> //赋值为数组类型,数组中要有ITabe中指定的属性
}
// 选项卡
export const tabsStore = defineStore('tabsStore', {
  // 方式一state 接收的数据类型
  // state: ():TabsState => ({
  //   tabsList:[]//将tabList初始化为ITabe对象的数组
  // }),
  state: (): TabsState => {
    return {
      tabsList: [],
    }
  },
  // 第二种方式
  // state: () => ({
  //   tabsList:[]as ITabe[]//将tabList初始化为ITabe对象的数组
  // }),
  getters: {
    getTabs(state) {
      return state.tabsList
    },
  },
  actions: {
    // 添加选项卡
    addTabe(tab: ITabe) {
      //判断是否已经存在，如果不存在，才放入
      if (this.tabsList.some(item => item.path === tab.path)) return
      this.tabsList.push(tab)
    },
    removeTabe(tab: ITabe[]) {
      this.tabsList = tab
    },
  },
  persist: {
    enabled: true, //开启持久化
  },
})
